home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / gas / gassrc02.zoo / vax-opcode.h < prev    next >
C/C++ Source or Header  |  1991-01-24  |  14KB  |  383 lines

  1. /* Vax opcde list.
  2.    Copyright (C) 1989, Free Software Foundation, Inc.
  3.  
  4. This file is part of GDB and GAS.
  5.  
  6. GDB and GAS are free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GDB and GAS are distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GDB or GAS; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #ifndef vax_opcodeT
  21. #define vax_opcodeT int
  22. #endif /* no vax_opcodeT */
  23.  
  24. struct vot_wot            /* vax opcode table: wot to do with this */
  25.                 /* particular opcode */
  26. {
  27.   char *            args;    /* how to compile said opcode */
  28.   vax_opcodeT       code;    /* op-code (may be > 8 bits!) */
  29. };
  30.  
  31. struct vot            /* vax opcode text */
  32. {
  33.   char *            name;    /* opcode name: lowercase string  [key]  */
  34.   struct vot_wot    detail;    /* rest of opcode table          [datum] */
  35. };
  36.  
  37. #define vot_how args
  38. #define vot_code code
  39. #define vot_detail detail
  40. #define vot_name name
  41.  
  42. static const struct vot
  43. votstrs[] =
  44. {
  45. {    "halt",    {"",            0x00    } },
  46. {    "nop",    {"",            0x01    } },
  47. {    "rei",    {"",            0x02    } },
  48. {    "bpt",    {"",            0x03    } },
  49. {    "ret",    {"",            0x04    } },
  50. {    "rsb",    {"",            0x05    } },
  51. {    "ldpctx",    {"",            0x06    } },
  52. {    "svpctx",    {"",            0x07    } },
  53. {    "cvtps",    {"rwabrwab",        0x08    } },
  54. {    "cvtsp",    {"rwabrwab",        0x09    } },
  55. {    "index",    {"rlrlrlrlrlwl",    0x0a    } },
  56. {    "crc",    {"abrlrwab",        0x0b    } },
  57. {    "prober",    {"rbrwab",        0x0c    } },
  58. {    "probew",    {"rbrwab",            0x0d    } },
  59. {    "insque",    {"abab",        0x0e    } },
  60. {    "remque",    {"abwl",        0x0f    } },
  61. {    "bsbb",    {"bb",            0x10    } },
  62. {    "brb",    {"bb",            0x11    } },
  63. {    "bneq",    {"bb",            0x12    } },
  64. {    "bnequ",    {"bb",            0x12    } },
  65. {    "beql",    {"bb",            0x13    } },
  66. {    "beqlu",    {"bb",            0x13    } },
  67. {    "bgtr",    {"bb",            0x14    } },
  68. {    "bleq",    {"bb",            0x15    } },
  69. {    "jsb",    {"ab",            0x16    } },
  70. {    "jmp",    {"ab",            0x17    } },
  71. {    "bgeq",    {"bb",            0x18    } },
  72. {    "blss",    {"bb",            0x19    } },
  73. {    "bgtru",    {"bb",            0x1a    } },
  74. {    "blequ",    {"bb",            0x1b    } },
  75. {    "bvc",    {"bb",            0x1c    } },
  76. {    "bvs",    {"bb",            0x1d    } },
  77. {    "bcc",    {"bb",            0x1e    } },
  78. {    "bgequ",    {"bb",            0x1e    } },
  79. {    "blssu",    {"bb",            0x1f    } },
  80. {    "bcs",    {"bb",            0x1f    } },
  81. {    "addp4",    {"rwabrwab",        0x20    } },
  82. {    "addp6",    {"rwabrwabrwab",    0x21    } },
  83. {    "subp4",    {"rwabrwab",        0x22    } },
  84. {    "subp6",    {"rwabrwabrwab",    0x23    } },
  85. {    "cvtpt",    {"rwababrwab",        0x24    } },
  86. {    "mulp",    {"rwabrwabrwab",    0x25    } },
  87. {    "cvttp",    {"rwababrwab",        0x26    } },
  88. {    "divp",    {"rwabrwabrwab",    0x27    } },
  89. {    "movc3",    {"rwabab",        0x28    } },
  90. {    "cmpc3",    {"rwabab",        0x29    } },
  91. {    "scanc",    {"rwababrb",        0x2a    } },
  92. {    "spanc",    {"rwababrb",        0x2b    } },
  93. {    "movc5",    {"rwabrbrwab",        0x2c    } },
  94. {    "cmpc5",    {"rwabrbrwab",        0x2d    } },
  95. {    "movtc",    {"rwabrbabrwab",    0x2e    } },
  96. {    "movtuc",    {"rwabrbabrwab",    0x2f    } },
  97. {    "bsbw",    {"bw",            0x30    } },
  98. {    "brw",    {"bw",            0x31    } },
  99. {    "cvtwl",    {"rwwl",        0x32    } },
  100. {    "cvtwb",    {"rwwb",        0x33    } },
  101. {    "movp",    {"rwabab",        0x34    } },
  102. {    "cmpp3",    {"rwabab",        0x35    } },
  103. {    "cvtpl",    {"rwabwl",        0x36    } },
  104. {    "cmpp4",    {"rwabrwab",        0x37    } },
  105. {    "editpc",    {"rwababab",        0x38    } },
  106. {    "matchc",    {"rwabrwab",        0x39    } },
  107. {    "locc",    {"rbrwab",        0x3a    } },
  108. {    "skpc",    {"rbrwab",        0x3b    } },
  109. {    "movzwl",    {"rwwl",        0x3c    } },
  110. {    "acbw",    {"rwrwmwbw",        0x3d    } },
  111. {    "movaw",    {"awwl",        0x3e    } },
  112. {    "pushaw",    {"aw",            0x3f    } },
  113. {    "addf2",    {"rfmf",        0x40    } },
  114. {    "addf3",    {"rfrfwf",        0x41    } },
  115. {    "subf2",    {"rfmf",        0x42    } },
  116. {    "subf3",    {"rfrfwf",        0x43    } },
  117. {    "mulf2",    {"rfmf",        0x44    } },
  118. {    "mulf3",    {"rfrfwf",        0x45    } },
  119. {    "divf2",    {"rfmf",        0x46    } },
  120. {    "divf3",    {"rfrfwf",        0x47    } },
  121. {    "cvtfb",    {"rfwb",        0x48    } },
  122. {    "cvtfw",    {"rfww",        0x49    } },
  123. {    "cvtfl",    {"rfwl",        0x4a    } },
  124. {    "cvtrfl",    {"rfwl",        0x4b    } },
  125. {    "cvtbf",    {"rbwf",        0x4c    } },
  126. {    "cvtwf",    {"rwwf",        0x4d    } },
  127. {    "cvtlf",    {"rlwf",        0x4e    } },
  128. {    "acbf",    {"rfrfmfbw",        0x4f    } },
  129. {    "movf",    {"rfwf",        0x50    } },
  130. {    "cmpf",    {"rfrf",        0x51    } },
  131. {    "mnegf",    {"rfwf",        0x52    } },
  132. {    "tstf",    {"rf",            0x53    } },
  133. {    "emodf",    {"rfrbrfwlwf",        0x54    } },
  134. {    "polyf",    {"rfrwab",        0x55    } },
  135. {    "cvtfd",    {"rfwd",        0x56    } },
  136.                                         /* opcode 57 is not defined yet */
  137. {    "adawi",    {"rwmw",        0x58    } },
  138.                                         /* opcode 59 is not defined yet */
  139.                                         /* opcode 5a is not defined yet */
  140.                                         /* opcode 5b is not defined yet */
  141. {    "insqhi",    {"abaq",        0x5c    } },
  142. {    "insqti",    {"abaq",        0x5d    } },
  143. {    "remqhi",    {"aqwl",        0x5e    } },
  144. {    "remqti",    {"aqwl",        0x5f    } },
  145. {    "addd2",    {"rdmd",        0x60    } },
  146. {    "addd3",    {"rdrdwd",        0x61    } },
  147. {    "subd2",    {"rdmd",        0x62    } },
  148. {    "subd3",    {"rdrdwd",        0x63    } },
  149. {    "muld2",    {"rdmd",        0x64    } },
  150. {    "muld3",    {"rdrdwd",        0x65    } },
  151. {    "divd2",    {"rdmd",        0x66    } },
  152. {    "divd3",    {"rdrdwd",        0x67    } },
  153. {    "cvtdb",    {"rdwb",        0x68    } },
  154. {    "cvtdw",    {"rdww",        0x69    } },
  155. {    "cvtdl",    {"rdwl",        0x6a    } },
  156. {    "cvtrdl",    {"rdwl",        0x6b    } },
  157. {    "cvtbd",    {"rbwd",        0x6c    } },
  158. {    "cvtwd",    {"rwwd",        0x6d    } },
  159. {    "cvtld",    {"rlwd",        0x6e    } },
  160. {    "acbd",    {"rdrdmdbw",        0x6f    } },
  161. {    "movd",    {"rdwd",        0x70    } },
  162. {    "cmpd",    {"rdrd",        0x71    } },
  163. {    "mnegd",    {"rdwd",        0x72    } },
  164. {    "tstd",    {"rd",            0x73    } },
  165. {    "emodd",    {"rdrbrdwlwd",        0x74    } },
  166. {    "polyd",    {"rdrwab",        0x75    } },
  167. {    "cvtdf",    {"rdwf",        0x76    } },
  168.                                         /* opcode 77 is not defined yet */
  169. {    "ashl",    {"rbrlwl",        0x78    } },
  170. {    "ashq",    {"rbrqwq",        0x79    } },
  171. {    "emul",    {"rlrlrlwq",        0x7a    } },
  172. {    "ediv",    {"rlrqwlwl",        0x7b    } },
  173. {    "clrd",    {"wd",            0x7c    } },
  174. {    "clrg",    {"wg",            0x7c    } },
  175. {    "clrq",    {"wd",            0x7c    } },
  176. {    "movq",    {"rqwq",        0x7d    } },
  177. {    "movaq",    {"aqwl",        0x7e    } },
  178. {    "movad",    {"adwl",        0x7e    } },
  179. {    "pushaq",    {"aq",            0x7f    } },
  180. {    "pushad",    {"ad",            0x7f    } },
  181. {    "addb2",    {"rbmb",        0x80    } },
  182. {    "addb3",    {"rbrbwb",        0x81    } },
  183. {    "subb2",    {"rbmb",        0x82    } },
  184. {    "subb3",    {"rbrbwb",        0x83    } },
  185. {    "mulb2",    {"rbmb",        0x84    } },
  186. {    "mulb3",    {"rbrbwb",        0x85    } },
  187. {    "divb2",    {"rbmb",        0x86    } },
  188. {    "divb3",    {"rbrbwb",        0x87    } },
  189. {    "bisb2",    {"rbmb",        0x88    } },
  190. {    "bisb3",    {"rbrbwb",        0x89    } },
  191. {    "bicb2",    {"rbmb",        0x8a    } },
  192. {    "bicb3",    {"rbrbwb",        0x8b    } },
  193. {    "xorb2",    {"rbmb",        0x8c    } },
  194. {    "xorb3",    {"rbrbwb",        0x8d    } },
  195. {    "mnegb",    {"rbwb",        0x8e    } },
  196. {    "caseb",    {"rbrbrb",        0x8f    } },
  197. {    "movb",    {"rbwb",        0x90    } },
  198. {    "cmpb",    {"rbrb",        0x91    } },
  199. {    "mcomb",    {"rbwb",        0x92    } },
  200. {    "bitb",    {"rbrb",        0x93    } },
  201. {    "clrb",    {"wb",            0x94    } },
  202. {    "tstb",    {"rb",            0x95    } },
  203. {    "incb",    {"mb",            0x96    } },
  204. {    "decb",    {"mb",            0x97    } },
  205. {    "cvtbl",    {"rbwl",        0x98    } },
  206. {    "cvtbw",    {"rbww",        0x99    } },
  207. {    "movzbl",    {"rbwl",        0x9a    } },
  208. {    "movzbw",    {"rbww",        0x9b    } },
  209. {    "rotl",    {"rbrlwl",        0x9c    } },
  210. {    "acbb",    {"rbrbmbbw",        0x9d    } },
  211. {    "movab",    {"abwl",        0x9e    } },
  212. {    "pushab",    {"ab",            0x9f    } },
  213. {    "addw2",    {"rwmw",        0xa0    } },
  214. {    "addw3",    {"rwrwww",        0xa1    } },
  215. {    "subw2",    {"rwmw",        0xa2    } },
  216. {    "subw3",    {"rwrwww",        0xa3    } },
  217. {    "mulw2",    {"rwmw",        0xa4    } },
  218. {    "mulw3",    {"rwrwww",        0xa5    } },
  219. {    "divw2",    {"rwmw",        0xa6    } },
  220. {    "divw3",    {"rwrwww",        0xa7    } },
  221. {    "bisw2",    {"rwmw",        0xa8    } },
  222. {    "bisw3",    {"rwrwww",        0xa9    } },
  223. {    "bicw2",    {"rwmw",        0xaa    } },
  224. {    "bicw3",    {"rwrwww",        0xab    } },
  225. {    "xorw2",    {"rwmw",        0xac    } },
  226. {    "xorw3",    {"rwrwww",        0xad    } },
  227. {    "mnegw",    {"rwww",        0xae    } },
  228. {    "casew",    {"rwrwrw",        0xaf    } },
  229. {    "movw",    {"rwww",        0xb0    } },
  230. {    "cmpw",    {"rwrw",        0xb1    } },
  231. {    "mcomw",    {"rwww",        0xb2    } },
  232. {    "bitw",    {"rwrw",        0xb3    } },
  233. {    "clrw",    {"ww",            0xb4    } },
  234. {    "tstw",    {"rw",            0xb5    } },
  235. {    "incw",    {"mw",            0xb6    } },